Unity 关于TextMeshPro自动换行的问题 | 您所在的位置:网站首页 › unity text 换行 › Unity 关于TextMeshPro自动换行的问题 |
先看问题: 问题展示:独立游戏交流群807432457我们可以看到,在汉字+数字或者英文字母的时候,如果当前行剩余宽度不能完整显示数字或英文部分,TextMeshProUGUI会自动换行。 前言: 今天在群里有群友提出这个问题,我在帮他解答之后,顺便将解决方案写下并和大家分享,希望能帮到更多的朋友。 这种问题我会给出两个解决方案仅供大家参考。如果有其他更合适的方法,也请大家在下方留言。 正文 方案一: 使用富文本的方式解决这个问题。把不想换行的文本使用 包裹起来。 独立游戏交流群号807432457 效果如下 使用后的效果大体效果就实现了,但是这里有一个问题要注意一下,此时我们在文本中加入空格,可能会引起换行。 空格引起的换行对于这种情况,我建议要么别用空格,要么使用 至于有的朋友说替换成'\u3000'行不行,得看你制作的文字资源是不是支持,有可能会出现□这种情况,具体的要亲自试一下。 方案二: 修改TextMeshPro的代码。百度查询的时候发现有许多大佬提过这个方法,但是因为版本迭代,我没找到这是在哪.... 比如这篇:https://blog.csdn.net/qq_33205561/article/details/103888909 百度图这个我没找到。 我这边演示的版本是V 2.1.4版本,给大家参考。 版本查找目录。 目录选择Packages→TextMeshPro→Scripts→Runtime。 最后找到TMPro_UGUI_Private这个脚本,双击点进去。 找到这个位置我是直接搜的 if (isNextFollowingCharacter == false) 将下图示意部分注释掉。第一部分就在搜索的if当中。第二部分稍微向上翻一下。 第一部分第二部分在第一部分往上一点的isFirstWordOfLine = false;; 第二部分修改后效果如下 效果图最后,我承认我啃不透那4600多行的代码,所以这么修改以后,看起来效果是对的。 至于会不会有其他的问题,目前我没测出来。如果各位看官知道修改以后会导致什么问题,也欢迎在评论区留言,我及时改正。 |
CopyRight 2018-2019 实验室设备网 版权所有 |